home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / CIncludes / HyperXCmd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-17  |  14.5 KB  |  625 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        HyperXCmd.h
  3.  
  4.      Contains:    Interfaces for HyperCard XCMD's
  5.  
  6.      Version:    Technology:    HyperCard 2.3
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1987-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __HYPERXCMD__
  18. #define __HYPERXCMD__
  19.  
  20. #ifndef __MACTYPES__
  21. #include <MacTypes.h>
  22. #endif
  23. #ifndef __FP__
  24. #include <fp.h>
  25. #endif
  26. #ifndef __EVENTS__
  27. #include <Events.h>
  28. #endif
  29. #ifndef __TEXTEDIT__
  30. #include <TextEdit.h>
  31. #endif
  32. #ifndef __MENUS__
  33. #include <Menus.h>
  34. #endif
  35. #ifndef __STANDARDFILE__
  36. #include <StandardFile.h>
  37. #endif
  38.  
  39.  
  40.  
  41. #if PRAGMA_ONCE
  42. #pragma once
  43. #endif
  44.  
  45. #ifdef __cplusplus
  46. extern "C" {
  47. #endif
  48.  
  49. #if PRAGMA_IMPORT
  50. #pragma import on
  51. #endif
  52.  
  53. #if PRAGMA_STRUCT_ALIGN
  54.     #pragma options align=mac68k
  55. #elif PRAGMA_STRUCT_PACKPUSH
  56.     #pragma pack(push, 2)
  57. #elif PRAGMA_STRUCT_PACK
  58.     #pragma pack(2)
  59. #endif
  60.  
  61. /* result codes */
  62.  
  63. enum {
  64.     xresSucc                    = 0,
  65.     xresFail                    = 1,
  66.     xresNotImp                    = 2
  67. };
  68.  
  69. /* XCMDBlock constants for event.what... */
  70.  
  71. enum {
  72.     xOpenEvt                    = 1000,                            /* the first event after you are created */
  73.     xCloseEvt                    = 1001,                            /* your window is being forced close (Quit?) */
  74.     xGiveUpEditEvt                = 1002,                            /* you are losing Edit... */
  75.     xGiveUpSoundEvt                = 1003,                            /* you are losing the sound channel... */
  76.     xHidePalettesEvt            = 1004,                            /* someone called HideHCPalettes */
  77.     xShowPalettesEvt            = 1005,                            /* someone called ShowHCPalettes */
  78.     xEditUndo                    = 1100,                            /* Edit——Undo */
  79.     xEditCut                    = 1102,                            /* Edit——Cut */
  80.     xEditCopy                    = 1103,                            /* Edit——Copy */
  81.     xEditPaste                    = 1104,                            /* Edit——Paste */
  82.     xEditClear                    = 1105,                            /* Edit——Clear */
  83.     xSendEvt                    = 1200,                            /* script has sent you a message (text) */
  84.     xSetPropEvt                    = 1201,                            /* set a window property */
  85.     xGetPropEvt                    = 1202,                            /* get a window property */
  86.     xCursorWithin                = 1300,                            /* cursor is within the window */
  87.     xMenuEvt                    = 1400,                            /* user has selected an item in your menu */
  88.     xMBarClickedEvt                = 1401,                            /* a menu is about to be shown--update if needed */
  89.     xShowWatchInfoEvt            = 1501,                            /* for variable and message watchers */
  90.     xScriptErrorEvt                = 1502,                            /* place the insertion point */
  91.     xDebugErrorEvt                = 1503,                            /* user clicked "Debug" at a complaint */
  92.     xDebugStepEvt                = 1504,                            /* hilite the line */
  93.     xDebugTraceEvt                = 1505,                            /* same as step but tracing */
  94.     xDebugFinishedEvt            = 1506                            /* script ended */
  95. };
  96.  
  97.  
  98. enum {
  99.     paletteProc                    = 2048,                            /* Windoid with grow box */
  100.     palNoGrowProc                = 2052,                            /* standard Windoid defproc */
  101.     palZoomProc                    = 2056,                            /* Windoid with zoom and grow */
  102.     palZoomNoGrow                = 2060                            /* Windoid with zoom and no grow */
  103. };
  104.  
  105.  
  106. enum {
  107.     hasZoom                        = 8,
  108.     hasTallTBar                    = 2,
  109.     toggleHilite                = 1
  110. };
  111.  
  112. /* paramCount is set to these constants when first calling special XThings */
  113.  
  114. enum {
  115.     xMessageWatcherID            = -2,
  116.     xVariableWatcherID            = -3,
  117.     xScriptEditorID                = -4,
  118.     xDebuggerID                    = -5
  119. };
  120.  
  121. /* XTalkObjectPtr->objectKind values */
  122.  
  123. enum {
  124.     stackObj                    = 1,
  125.     bkgndObj                    = 2,
  126.     cardObj                        = 3,
  127.     fieldObj                    = 4,
  128.     buttonObj                    = 5
  129. };
  130.  
  131. /* selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) */
  132.  
  133. enum {
  134.     errorDlgID                    = 1,                            /* 1:OK (default) */
  135.     confirmDlgID                = 2,                            /* 1:OK (default) and 2:Cancel */
  136.     confirmDelDlgID                = 3,                            /* 1:Cancel (default) and 2:Delete */
  137.     yesNoCancelDlgID            = 4                                /* 1:Yes (default), 2:Cancel, and 3:No */
  138. };
  139.  
  140.  
  141. /* type definitions */
  142.  
  143. struct XCmdBlock {
  144.     short                             paramCount;                    /* If = -1 then new use for XWindoids */
  145.     Handle                             params[16];
  146.     Handle                             returnValue;
  147.     Boolean                         passFlag;
  148.     SignedByte                         filler1;
  149.     UniversalProcPtr                 entryPoint;                    /* to call back to HyperCard */
  150.     short                             request;
  151.     short                             result;
  152.     long                             inArgs[8];
  153.     long                             outArgs[4];
  154. };
  155. typedef struct XCmdBlock                XCmdBlock;
  156.  
  157. typedef XCmdBlock *                        XCmdPtr;
  158.  
  159.  
  160. struct XWEventInfo {
  161.     EventRecord                     event;
  162.     WindowPtr                         eventWindow;
  163.     long                             eventParams[9];
  164.     Handle                             eventResult;
  165. };
  166. typedef struct XWEventInfo                XWEventInfo;
  167. typedef XWEventInfo *                    XWEventInfoPtr;
  168.  
  169. struct XTalkObject {
  170.     short                             objectKind;                    /* stack, bkgnd, card, field, or button */
  171.     long                             stackNum;                    /* reference number of the source stack */
  172.     long                             bkgndID;
  173.     long                             cardID;
  174.     long                             buttonID;
  175.     long                             fieldID;
  176. };
  177. typedef struct XTalkObject                XTalkObject;
  178. typedef XTalkObject *                    XTalkObjectPtr;
  179. /* maximum number of checkpoints in a script */
  180.  
  181. enum {
  182.     maxCachedChecks                = 16
  183. };
  184.  
  185.  
  186. struct CheckPts {
  187.     short                             checks[16];
  188. };
  189. typedef struct CheckPts                    CheckPts;
  190.  
  191. typedef CheckPts *                        CheckPtPtr;
  192. typedef CheckPtPtr *                    CheckPtHandle;
  193. /*
  194.         HyperTalk Utilities  
  195. */
  196. EXTERN_API( Handle )
  197. EvalExpr                        (XCmdPtr                 paramPtr,
  198.                                  ConstStr255Param         expr);
  199.  
  200. EXTERN_API( void )
  201. SendCardMessage                    (XCmdPtr                 paramPtr,
  202.                                  ConstStr255Param         msg);
  203.  
  204. EXTERN_API( void )
  205. SendHCMessage                    (XCmdPtr                 paramPtr,
  206.                                  ConstStr255Param         msg);
  207.  
  208. EXTERN_API( void )
  209. RunHandler                        (XCmdPtr                 paramPtr,
  210.                                  Handle                 handler);
  211.  
  212. /*
  213.         Memory Utilities  
  214. */
  215. EXTERN_API( Handle )
  216. GetGlobal                        (XCmdPtr                 paramPtr,
  217.                                  ConstStr255Param         globName);
  218.  
  219. EXTERN_API( void )
  220. SetGlobal                        (XCmdPtr                 paramPtr,
  221.                                  ConstStr255Param         globName,
  222.                                  Handle                 globValue);
  223.  
  224. EXTERN_API( void )
  225. ZeroBytes                        (XCmdPtr                 paramPtr,
  226.                                  void *                    dstPtr,
  227.                                  long                     longCount);
  228.  
  229. /*
  230.         String Utilities  
  231. */
  232. EXTERN_API( void )
  233. ScanToReturn                    (XCmdPtr                 paramPtr,
  234.                                  Ptr *                    scanPtr);
  235.  
  236. EXTERN_API( void )
  237. ScanToZero                        (XCmdPtr                 paramPtr,
  238.                                  Ptr *                    scanPtr);
  239.  
  240. EXTERN_API( Boolean )
  241. StringEqual                        (XCmdPtr                 paramPtr,
  242.                                  ConstStr255Param         str1,
  243.                                  ConstStr255Param         str2);
  244.  
  245. EXTERN_API( long )
  246. StringLength                    (XCmdPtr                 paramPtr,
  247.                                  void *                    strPtr);
  248.  
  249. EXTERN_API( void *)
  250. StringMatch                        (XCmdPtr                 paramPtr,
  251.                                  ConstStr255Param         pattern,
  252.                                  void *                    target);
  253.  
  254. EXTERN_API( void )
  255. ZeroTermHandle                    (XCmdPtr                 paramPtr,
  256.                                  Handle                 hndl);
  257.  
  258. /*
  259.         String Conversions  
  260. */
  261. EXTERN_API( void )
  262. BoolToStr                        (XCmdPtr                 paramPtr,
  263.                                  Boolean                 value,
  264.                                  Str255                 str);
  265.  
  266. EXTERN_API( void )
  267. Double_tToStr                    (XCmdPtr                 paramPtr,
  268.                                  double_t                 num,
  269.                                  Str255                 str);
  270.  
  271. EXTERN_API( void )
  272. LongToStr                        (XCmdPtr                 paramPtr,
  273.                                  long                     posNum,
  274.                                  Str255                 str);
  275.  
  276. EXTERN_API( void )
  277. NumToHex                        (XCmdPtr                 paramPtr,
  278.                                  long                     num,
  279.                                  short                     nDigits,
  280.                                  Str255                 str);
  281.  
  282. EXTERN_API( void )
  283. NumToStr                        (XCmdPtr                 paramPtr,
  284.                                  long                     num,
  285.                                  Str255                 str);
  286.  
  287. EXTERN_API( Handle )
  288. PasToZero                        (XCmdPtr                 paramPtr,
  289.                                  ConstStr255Param         str);
  290.  
  291. EXTERN_API( void )
  292. PointToStr                        (XCmdPtr                 paramPtr,
  293.                                  Point                     pt,
  294.                                  Str255                 str);
  295.  
  296. EXTERN_API( void )
  297. RectToStr                        (XCmdPtr                 paramPtr,
  298.                                  const Rect *            rct,
  299.                                  Str255                 str);
  300.  
  301. EXTERN_API( void )
  302. ReturnToPas                        (XCmdPtr                 paramPtr,
  303.                                  void *                    zeroStr,
  304.                                  Str255                 pasStr);
  305.  
  306. EXTERN_API( Boolean )
  307. StrToBool                        (XCmdPtr                 paramPtr,
  308.                                  ConstStr255Param         str);
  309.  
  310. EXTERN_API( double_t )
  311. StrToDouble_t                    (XCmdPtr                 paramPtr,
  312.                                  ConstStr255Param         str);
  313.  
  314. EXTERN_API( long )
  315. StrToLong                        (XCmdPtr                 paramPtr,
  316.                                  ConstStr255Param         str);
  317.  
  318. EXTERN_API( long )
  319. StrToNum                        (XCmdPtr                 paramPtr,
  320.                                  ConstStr255Param         str);
  321.  
  322. EXTERN_API( void )
  323. StrToPoint                        (XCmdPtr                 paramPtr,
  324.                                  ConstStr255Param         str,
  325.                                  Point *                pt);
  326.  
  327. EXTERN_API( void )
  328. StrToRect                        (XCmdPtr                 paramPtr,
  329.                                  ConstStr255Param         str,
  330.                                  Rect *                    rct);
  331.  
  332. EXTERN_API( void )
  333. ZeroToPas                        (XCmdPtr                 paramPtr,
  334.                                  void *                    zeroStr,
  335.                                  Str255                 pasStr);
  336.  
  337. /*
  338.         Field Utilities  
  339. */
  340. EXTERN_API( Handle )
  341. GetFieldByID                    (XCmdPtr                 paramPtr,
  342.                                  Boolean                 cardFieldFlag,
  343.                                  short                     fieldID);
  344.  
  345. EXTERN_API( Handle )
  346. GetFieldByName                    (XCmdPtr                 paramPtr,
  347.                                  Boolean                 cardFieldFlag,
  348.                                  ConstStr255Param         fieldName);
  349.  
  350. EXTERN_API( Handle )
  351. GetFieldByNum                    (XCmdPtr                 paramPtr,
  352.                                  Boolean                 cardFieldFlag,
  353.                                  short                     fieldNum);
  354.  
  355. EXTERN_API( void )
  356. SetFieldByID                    (XCmdPtr                 paramPtr,
  357.                                  Boolean                 cardFieldFlag,
  358.                                  short                     fieldID,
  359.                                  Handle                 fieldVal);
  360.  
  361. EXTERN_API( void )
  362. SetFieldByName                    (XCmdPtr                 paramPtr,
  363.                                  Boolean                 cardFieldFlag,
  364.                                  ConstStr255Param         fieldName,
  365.                                  Handle                 fieldVal);
  366.  
  367. EXTERN_API( void )
  368. SetFieldByNum                    (XCmdPtr                 paramPtr,
  369.                                  Boolean                 cardFieldFlag,
  370.                                  short                     fieldNum,
  371.                                  Handle                 fieldVal);
  372.  
  373. EXTERN_API( TEHandle )
  374. GetFieldTE                        (XCmdPtr                 paramPtr,
  375.                                  Boolean                 cardFieldFlag,
  376.                                  short                     fieldID,
  377.                                  short                     fieldNum,
  378.                                  ConstStr255Param         fieldName);
  379.  
  380. EXTERN_API( void )
  381. SetFieldTE                        (XCmdPtr                 paramPtr,
  382.                                  Boolean                 cardFieldFlag,
  383.                                  short                     fieldID,
  384.                                  short                     fieldNum,
  385.                                  ConstStr255Param         fieldName,
  386.                                  TEHandle                 fieldTE);
  387.  
  388. /*
  389.         Miscellaneous Utilities  
  390. */
  391. EXTERN_API( void )
  392. BeginXSound                        (XCmdPtr                 paramPtr,
  393.                                  WindowPtr                 window);
  394.  
  395. EXTERN_API( void )
  396. EndXSound                        (XCmdPtr                 paramPtr);
  397.  
  398. EXTERN_API( Boolean )
  399. GetFilePath                        (XCmdPtr                 paramPtr,
  400.                                  ConstStr255Param         fileName,
  401.                                  short                     numTypes,
  402.                                  ConstSFTypeListPtr     typeList,
  403.                                  Boolean                 askUser,
  404.                                  OSType *                fileType,
  405.                                  Str255                 fullName);
  406.  
  407. EXTERN_API( void )
  408. GetXResInfo                        (XCmdPtr                 paramPtr,
  409.                                  short *                resFile,
  410.                                  short *                resID,
  411.                                  ResType *                rType,
  412.                                  Str255                 name);
  413.  
  414. EXTERN_API( void )
  415. Notify                            (XCmdPtr                 paramPtr);
  416.  
  417. EXTERN_API( void )
  418. SendHCEvent                        (XCmdPtr                 paramPtr,
  419.                                  const EventRecord *    event);
  420.  
  421. EXTERN_API( void )
  422. SendWindowMessage                (XCmdPtr                 paramPtr,
  423.                                  WindowPtr                 windPtr,
  424.                                  ConstStr255Param         windowName,
  425.                                  ConstStr255Param         msg);
  426.  
  427. EXTERN_API( WindowPtr )
  428. FrontDocWindow                    (XCmdPtr                 paramPtr);
  429.  
  430. EXTERN_API( long )
  431. StackNameToNum                    (XCmdPtr                 paramPtr,
  432.                                  ConstStr255Param         stackName);
  433.  
  434. EXTERN_API( short )
  435. ShowHCAlert                        (XCmdPtr                 paramPtr,
  436.                                  short                     dlgID,
  437.                                  ConstStr255Param         promptStr);
  438.  
  439. EXTERN_API( Boolean )
  440. AbortInQueue                    (XCmdPtr                 paramPtr);
  441.  
  442. EXTERN_API( void )
  443. FlushStackFile                    (XCmdPtr                 paramPtr);
  444.  
  445. /*
  446.         Creating and Disposing XWindoids  
  447. */
  448. EXTERN_API( WindowPtr )
  449. NewXWindow                        (XCmdPtr                 paramPtr,
  450.                                  const Rect *            boundsRect,
  451.                                  ConstStr255Param         title,
  452.                                  Boolean                 visible,
  453.                                  short                     procID,
  454.                                  Boolean                 color,
  455.                                  Boolean                 floating);
  456.  
  457. EXTERN_API( WindowPtr )
  458. GetNewXWindow                    (XCmdPtr                 paramPtr,
  459.                                  ResType                 templateType,
  460.                                  short                     templateID,
  461.                                  Boolean                 color,
  462.                                  Boolean                 floating);
  463.  
  464. EXTERN_API( void )
  465. CloseXWindow                    (XCmdPtr                 paramPtr,
  466.                                  WindowPtr                 window);
  467.  
  468. /*
  469.         XWindoid Utilities  
  470. */
  471. EXTERN_API( void )
  472. HideHCPalettes                    (XCmdPtr                 paramPtr);
  473.  
  474. EXTERN_API( void )
  475. ShowHCPalettes                    (XCmdPtr                 paramPtr);
  476.  
  477. EXTERN_API( void )
  478. RegisterXWMenu                    (XCmdPtr                 paramPtr,
  479.                                  WindowPtr                 window,
  480.                                  MenuHandle             menu,
  481.                                  Boolean                 registering);
  482.  
  483. EXTERN_API( void )
  484. SetXWIdleTime                    (XCmdPtr                 paramPtr,
  485.                                  WindowPtr                 window,
  486.                                  long                     interval);
  487.  
  488. EXTERN_API( void )
  489. XWHasInterruptCode                (XCmdPtr                 paramPtr,
  490.                                  WindowPtr                 window,
  491.                                  Boolean                 haveCode);
  492.  
  493. EXTERN_API( void )
  494. XWAlwaysMoveHigh                (XCmdPtr                 paramPtr,
  495.                                  WindowPtr                 window,
  496.                                  Boolean                 moveHigh);
  497.  
  498. EXTERN_API( void )
  499. XWAllowReEntrancy                (XCmdPtr                 paramPtr,
  500.                                  WindowPtr                 window,
  501.                                  Boolean                 allowSysEvts,
  502.                                  Boolean                 allowHCEvts);
  503.  
  504. /*
  505.         Text Editing Utilities  
  506. */
  507. EXTERN_API( void )
  508. BeginXWEdit                        (XCmdPtr                 paramPtr,
  509.                                  WindowPtr                 window);
  510.  
  511. EXTERN_API( void )
  512. EndXWEdit                        (XCmdPtr                 paramPtr,
  513.                                  WindowPtr                 window);
  514.  
  515. EXTERN_API( WordBreakUPP )
  516. HCWordBreakProc                    (XCmdPtr                 paramPtr);
  517.  
  518. EXTERN_API( void )
  519. PrintTEHandle                    (XCmdPtr                 paramPtr,
  520.                                  TEHandle                 hTE,
  521.                                  StringPtr                 header);
  522.  
  523. /*
  524.         Script Editor support  
  525. */
  526. EXTERN_API( CheckPtHandle )
  527. GetCheckPoints                    (XCmdPtr                 paramPtr);
  528.  
  529. EXTERN_API( void )
  530. SetCheckPoints                    (XCmdPtr                 paramPtr,
  531.                                  CheckPtHandle             checkLines);
  532.  
  533. EXTERN_API( void )
  534. FormatScript                    (XCmdPtr                 paramPtr,
  535.                                  Handle                 scriptHndl,
  536.                                  long *                    insertionPoint,
  537.                                  Boolean                 quickFormat);
  538.  
  539. EXTERN_API( void )
  540. SaveXWScript                    (XCmdPtr                 paramPtr,
  541.                                  Handle                 scriptHndl);
  542.  
  543. EXTERN_API( void )
  544. GetObjectName                    (XCmdPtr                 paramPtr,
  545.                                  XTalkObjectPtr         xObjPtr,
  546.                                  Str255                 objName);
  547.  
  548. EXTERN_API( void )
  549. GetObjectScript                    (XCmdPtr                 paramPtr,
  550.                                  XTalkObjectPtr         xObjPtr,
  551.                                  Handle *                scriptHndl);
  552.  
  553. EXTERN_API( void )
  554. SetObjectScript                    (XCmdPtr                 paramPtr,
  555.                                  XTalkObjectPtr         xObjPtr,
  556.                                  Handle                 scriptHndl);
  557.  
  558. /*
  559.         Debugging Tools support  
  560. */
  561. EXTERN_API( void )
  562. AbortScript                        (XCmdPtr                 paramPtr);
  563.  
  564. EXTERN_API( void )
  565. GoScript                        (XCmdPtr                 paramPtr);
  566.  
  567. EXTERN_API( void )
  568. StepScript                        (XCmdPtr                 paramPtr,
  569.                                  Boolean                 stepInto);
  570.  
  571. EXTERN_API( void )
  572. CountHandlers                    (XCmdPtr                 paramPtr,
  573.                                  short *                handlerCount);
  574.  
  575. EXTERN_API( void )
  576. GetHandlerInfo                    (XCmdPtr                 paramPtr,
  577.                                  short                     handlerNum,
  578.                                  Str255                 handlerName,
  579.                                  Str255                 objectName,
  580.                                  short *                varCount);
  581.  
  582. EXTERN_API( void )
  583. GetVarInfo                        (XCmdPtr                 paramPtr,
  584.                                  short                     handlerNum,
  585.                                  short                     varNum,
  586.                                  Str255                 varName,
  587.                                  Boolean *                isGlobal,
  588.                                  Str255                 varValue,
  589.                                  Handle                 varHndl);
  590.  
  591. EXTERN_API( void )
  592. SetVarValue                        (XCmdPtr                 paramPtr,
  593.                                  short                     handlerNum,
  594.                                  short                     varNum,
  595.                                  Handle                 varHndl);
  596.  
  597. EXTERN_API( Handle )
  598. GetStackCrawl                    (XCmdPtr                 paramPtr);
  599.  
  600. EXTERN_API( void )
  601. TraceScript                        (XCmdPtr                 paramPtr,
  602.                                  Boolean                 traceInto);
  603.  
  604.  
  605. #if PRAGMA_STRUCT_ALIGN
  606.     #pragma options align=reset
  607. #elif PRAGMA_STRUCT_PACKPUSH
  608.     #pragma pack(pop)
  609. #elif PRAGMA_STRUCT_PACK
  610.     #pragma pack()
  611. #endif
  612.  
  613. #ifdef PRAGMA_IMPORT_OFF
  614. #pragma import off
  615. #elif PRAGMA_IMPORT
  616. #pragma import reset
  617. #endif
  618.  
  619. #ifdef __cplusplus
  620. }
  621. #endif
  622.  
  623. #endif /* __HYPERXCMD__ */
  624.  
  625.